/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.servico;

import br.com.deployment.entidade.acesso.Usuario;
import br.com.deployment.entidade.selo.Distribuicao;
import br.com.deployment.entidade.selo.Selo;
import br.com.deployment.entidade.selo.TipoSelo;
import br.com.deployment.utilitario.DistribuirSelos;
import br.com.deployment.utilitario.ResulDistribuicao;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author elyjr
 */
@Remote
public interface DistribuicaoServico {
    
    public void create(Distribuicao dis);

    void edit(Distribuicao dis);

    void remove(Distribuicao dis);

    Distribuicao  find(int id);
    
    List<Distribuicao>  findRecebedor(Usuario recebedor);

    List<Distribuicao> findAll();

    List<Distribuicao> findTipoEnd(Distribuicao dis);
    
    List<Selo> atribuirSelos(TipoSelo tipoSelo, int qtd);
    
    Long qtdSelo(Usuario u, TipoSelo tSelo);
    
    List<Selo> meusSelo(Usuario u, TipoSelo tSelo);
    
    Boolean containsSelo(TipoSelo tSelo, Integer qtd);
   
    void distribuirSelos(ResulDistribuicao rd, List<DistribuirSelos> list, List<ResulDistribuicao> resulDis, List<Selo> lstSeloAll);
    
    List<TipoSelo> editDistribuicao(Distribuicao dis);
    
    List<TipoSelo> verificarTipoSelo(Distribuicao d);
    
    int count(TipoSelo tipoSelo);
    
    public List<Selo> tipoSeloListaSelos(TipoSelo tselo, Distribuicao dis);

    public TipoSelo agrupando(TipoSelo tipoSelo);
    
    List<DistribuirSelos> getDistribuirSelos(Distribuicao d);
    
    public List<Selo> selosDistribuicao(Distribuicao dis);
    
     public List<Distribuicao> pesquisaDistribuicao(Distribuicao distribuicao);
    
}
